using System.ComponentModel.DataAnnotations;

namespace AiQiuQuan.Sport.Model.Models
{
    /// <summary>
    /// 新增dto
    /// </summary>
    public class SiteOrderAddDto
    {
        /// <summary>
        /// 业务订单号
        /// </summary>
        [Required(AllowEmptyStrings = false, ErrorMessage = "业务订单号必填")]
        public string SO_OrderNo { get; set; }

        /// <summary>
        /// 微信订单号
        /// </summary>
        public string? SO_WeChatOrderNo { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? SO_OrderRemark { get; set; }

        /// <summary>
        /// 用户id
        /// </summary>
        public Guid? BaseUserID { get; set; }

        /// <summary>
        /// 场馆id
        /// </summary>
        [Required(ErrorMessage = "场馆id必填")]
        public Guid VenueInfoID { get; set; }

        /// <summary>
        /// 订单总金额
        /// </summary>
        [Required(ErrorMessage = "订单总金额必填")]
        public decimal SO_TotalPrice { get; set; }

        /// <summary>
        /// 优惠金额
        /// </summary>
        [Required(ErrorMessage = "优惠金额必填")]
        public decimal SO_DiscountPrice { get; set; }

        /// <summary>
        /// 实际金额
        /// </summary>
        [Required(ErrorMessage = "实际金额必填")]
        public decimal SO_ActualPrice { get; set; }

        /// <summary>
        /// 订单状态：1待支付、2待使用、3待评价、4退款售后、5已完成
        /// </summary>
        [Required(ErrorMessage = "订单状态：1待支付、2待使用、3待评价、4退款售后、5已完成必填")]
        public int SO_State { get; set; }

        /// <summary>
        /// 支付方式：1.微信支付、2支付宝支付、3.场馆会员卡支付
        /// </summary>
        public int? PayType { get; set; }

        /// <summary>
        ///  会员卡类型：1储值卡、2次卡、3打折卡
        /// </summary>
        public int? MemberCardType { get; set; }

        /// <summary>
        /// 会员卡支付对应的次数、金额，折扣
        /// </summary>
        public decimal? CardAmount { get; set; }

        /// <summary>
        /// 取消时间
        /// </summary>
        public DateTimeOffset? SO_CancelTime { get; set; }

        /// <summary>
        /// 取消备注
        /// </summary>
        public string? SO_CancelRemark { get; set; }

        /// <summary>
        /// 取消原因
        /// </summary>
        public Guid? SO_CancelReason { get; set; }

        /// <summary>
        /// 取消角色
        /// </summary>
        public int? SO_CancelRole { get; set; }

        /// <summary>
        /// 使用积分
        /// </summary>
        public int? SO_UseIntegral { get; set; }

        /// <summary>
        /// 订单信息说明
        /// </summary>
        public string? SO_Explain { get; set; }
    }
}